A computer requires software to operate. In some computer systems, software is installed on individual computers from removable media such as a disk or CD-ROM. However, the task of updating software on individual computers in a large network is particularly time-consuming. Systems for distributing software over a network to one or more target computers are also available today. Because of the endless individual customization options, a software configuration on one computer rarely matches the software configuration on another computer. As a result, distributing software to differently configured computers is difficult. Thus, existing software distribution techniques are often inefficient and difficult.